class: title-slide, middle, right <style type="text/css"> /* ------------------------------------------------------- * * !! This file was generated by xaringanthemer !! * * Changes made to this file directly will be overwritten * if you used xaringanthemer in your xaringan slides Rmd * * Issues or likes? * - https://github.com/gadenbuie/xaringanthemer * - https://www.garrickadenbuie.com * * Need help? Try: * - vignette(package = "xaringanthemer") * - ?xaringanthemer::style_xaringan * - xaringan wiki: https://github.com/yihui/xaringan/wiki * - remarkjs wiki: https://github.com/gnab/remark/wiki * * Version: 0.4.1 * * ------------------------------------------------------- */ @import url(https://fonts.googleapis.com/css?family=Lato:400,400i&display=swap); @import url(https://fonts.googleapis.com/css?family=Lato&display=swap); @import url(https://fonts.googleapis.com/css?family=Lato&display=swap); @import url(https://fonts.googleapis.com/css?family=Arial+Narrow&display=swap); :root { /* Fonts */ --text-font-family: Lato; --text-font-is-google: 1; --text-font-family-fallback: -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, Ubuntu, roboto, noto, segoe ui, arial; --text-font-base: sans-serif; --header-font-family: Lato; --header-font-is-google: 1; --header-font-family-fallback: Georgia, serif; --code-font-family: Lato; --code-font-is-google: 1; --base-font-size: 20px; --text-font-size: 1rem; --code-font-size: 53%; --code-inline-font-size: 1em; --header-h1-font-size: 2.75rem; --header-h2-font-size: 2.25rem; --header-h3-font-size: 1.75rem; /* Colors */ --text-color: #333333; --header-color: #DD3333; --background-color: #FFFFFF; --link-color: #DD3333; --text-bold-color: #FF5252; --code-highlight-color: rgba(255,255,0,0.5); --inverse-text-color: #FFFFFF; --inverse-background-color: #DD3333; --inverse-header-color: #FFFFFF; --inverse-link-color: #DD3333; --title-slide-background-color: #FFFFFF; --title-slide-text-color: #DD3333; --header-background-color: #DD3333; --header-background-text-color: #FFFFFF; --primary: #FFFFFF; --secondary: #DD3333; } html { font-size: var(--base-font-size); } body { font-family: var(--text-font-family), var(--text-font-family-fallback), var(--text-font-base); font-weight: 400; color: var(--text-color); } h1, h2, h3 { font-family: var(--header-font-family), var(--header-font-family-fallback); font-weight: 600; color: var(--header-color); } .remark-slide-content { background-color: var(--background-color); font-size: 1rem; padding: 0.4em 2.4em 0.4em 2.4em; width: 100%; height: 100%; } .remark-slide-content h1 { font-size: var(--header-h1-font-size); } .remark-slide-content h2 { font-size: var(--header-h2-font-size); } .remark-slide-content h3 { font-size: var(--header-h3-font-size); } .remark-code, .remark-inline-code { font-family: var(--code-font-family), Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; } .remark-code { font-size: var(--code-font-size); } .remark-inline-code { font-size: var(--code-inline-font-size); color: #DD3333; } .remark-slide-number { color: #333333; opacity: 1; font-size: 0.9rem; } strong { font-weight: bold; color: var(--text-bold-color); } a, a > code { color: var(--link-color); text-decoration: none; } .footnote { position: absolute; bottom: 60px; padding-right: 4em; font-size: 0.9em; } .remark-code-line-highlighted { background-color: var(--code-highlight-color); } .inverse { background-color: var(--inverse-background-color); color: var(--inverse-text-color); } .inverse h1, .inverse h2, .inverse h3 { color: var(--inverse-header-color); } .inverse a, .inverse a > code { color: var(--inverse-link-color); } .title-slide, .title-slide h1, .title-slide h2, .title-slide h3 { color: var(--title-slide-text-color); } .title-slide { background-color: var(--title-slide-background-color); } .title-slide .remark-slide-number { display: none; } /* Two-column layout */ .left-column { width: 20%; height: 92%; float: left; } .left-column h2, .left-column h3 { color: #DD333399; } .left-column h2:last-of-type, .left-column h3:last-child { color: #DD3333; } .right-column { width: 75%; float: right; padding-top: 1em; } .pull-left { float: left; width: 47%; } .pull-right { float: right; width: 47%; } .pull-right + * { clear: both; } img, video, iframe { max-width: 100%; } blockquote { border-left: solid 5px #DD333380; padding-left: 1em; } .remark-slide table { margin: auto; border-top: 1px solid #666; border-bottom: 1px solid #666; } .remark-slide table thead th { border-bottom: 1px solid #ddd; } th, td { padding: 5px; } .remark-slide thead, .remark-slide tfoot, .remark-slide tr:nth-child(even) { background: #FFFFFF; } table.dataTable tbody { background-color: var(--background-color); color: var(--text-color); } table.dataTable.display tbody tr.odd { background-color: var(--background-color); } table.dataTable.display tbody tr.even { background-color: #FFFFFF; } table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { background-color: rgba(255, 255, 255, 0.5); } .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate { color: var(--text-color); } .dataTables_wrapper .dataTables_paginate .paginate_button { color: var(--text-color) !important; } /* Horizontal alignment of code blocks */ .remark-slide-content.left pre, .remark-slide-content.center pre, .remark-slide-content.right pre { text-align: start; width: max-content; max-width: 100%; } .remark-slide-content.left pre, .remark-slide-content.right pre { min-width: 50%; min-width: min(40ch, 100%); } .remark-slide-content.center pre { min-width: 66%; min-width: min(50ch, 100%); } .remark-slide-content.left pre { margin-left: unset; margin-right: auto; } .remark-slide-content.center pre { margin-left: auto; margin-right: auto; } .remark-slide-content.right pre { margin-left: auto; margin-right: unset; } /* Slide Header Background for h1 elements */ .remark-slide-content.header_background > h1 { display: block; position: absolute; top: 0; left: 0; width: 100%; background: var(--header-background-color); color: var(--header-background-text-color); padding: 2rem 2.4em 1.5rem 2.4em; margin-top: 0; box-sizing: border-box; } .remark-slide-content.header_background { padding-top: 7rem; } @page { margin: 0; } @media print { .remark-slide-scaler { width: 100% !important; height: 100% !important; transform: scale(1) !important; top: 0 !important; left: 0 !important; } } .primary { color: var(--primary); } .bg-primary { background-color: var(--primary); } .secondary { color: var(--secondary); } .bg-secondary { background-color: var(--secondary); } /* Extra CSS */ .remark-slide-scaler { overflow-y: auto; } .gray { color: #aaaaaa; } .black { color: #bc7777; } .darkgreen { color: #45503B; } .darkred { color: #591F0A; } .small { font-size: 90%; } .pull_c { float: center; width: 30%; height: 50%; padding-left: 40%; } .pull_c_title { height: 90%; } .pull_l_70 { float: left; width: 72%; font-size: 90%; } .pull_r_30 { float: right; width: 23%; font-size: 90%; } .pull_left { float: left; width: 47%; height: 100%; padding-right: 2%; } .pull_right { float: right; width: 47%; height: 100%; padding-left: 2%; } .small_left { float: left; width: 47%; height: 50%; padding-right: 2%; } .small_right { float: right; width: 47%; height: 50%; padding-left: 2%; } .left_code { float: left; width: 47%; height: 100%; padding-right: 2%; font: Roboto; } .code_out { float: right; width: 47%; height: 100%; padding-left: 2%; font: Roboto; } .text_180 { font-size: 180%; } .text_170 { font-size: 170%; } .text_160 { font-size: 160%; } .text_150 { font-size: 150%; } .text_140 { font-size: 140%; } .text_130 { font-size: 130%; } .text_120 { font-size: 120%; } .text_110 { font-size: 110%; } .text_110 { font-size: 110%; } .text_100 { font-size: 100%; } .code_10 { code-inline-font-size: 60%; overflow-y: scroll !important; overflow-x: scroll !important; max-height: 5vh !important; line-height: 0.75em; } .code_10_pre { code-inline-font-size: 60%; overflow-y: scroll !important; overflow-x: scroll !important; max-height: 15vh !important; line-height: 0.75em; min-height: 0.5em; } .code_15 { code-inline-font-size: 15%; overflow-y: scroll !important; overflow-x: scroll !important; max-height: 10vh !important; } .text_90 { font-size: 90%; } .text_80 { font-size: 80%; } .text_70 { font-size: 70%; } .text_65 { font-size: 65%; } .text_60 { font-size: 60%; } .text_50 { font-size: 50%; } .text_40 { font-size: 40%; } .text_30 { font-size: 30%; } .text_20 { font-size: 20%; } .line_space_15 { line-height: 1.5em;; } .line_space_13 { line-height: 1.3em;; } .line_space_11 { line-height: 1.1em;; } .line_space_15 { line-height: 1.5em;; } .line_space_09 { line-height: 0.9em;; } .line_space_07 { line-height: 0.7em;; } .line_space_05 { line-height: 0.5em;; } .largest { font-size: 2.488em;; } .larger { font-size: 2.074em;; } .large { font-size: 1.44em;; } .small { font-size: 0.833em;; } .smaller { font-size: 0.694em;; } .smallest { font-size: 0.579em;; } .limity150 { max-height: 150px;; overflow-y: auto;; } .tiny_text { font-size: 70%; } .large_text { font-size: 150%; } .slide_blue { background-color: #FEDA3F; color: #3C3C3B; } .center_image { margin: 0; position: absolute; top: 50%; left: 50%; -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .center_left_img { top: 50%; left: 35%; } .center_left_image { margin: 0; position: absolute; top: 50%; left: 35%; -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .center_down_image { margin: 0; position: absolute; top: 90%; left: 50%; -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .center_top_image { margin: 0; position: absolute; top: 10%; /* Adjust to place the image at the top */ left: 50%; -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } slides > slide { overflow-x: auto !important; overflow-y: auto !important; } .superbigimage { white-space: nowrap; overflow-y: scroll; } </style> <br> .line_space_15[ ## .text_80[Estadística Aplicada y <br> Procesamiento de Datos con R] ] <br> .line_space_11[ <br> .text_70[[Código en:
](https://github.com/AGSCL/Curso_UDP)] .text_110[Clase 1. Proyectos en R] ] .bg-text[ 30 de agosto, 2023 .text_100[Andrés González Santa Cruz] .text_65[andres.gonzalezs@mail.udp.cl] [
](https://github.com/AGSCL) [
](https://orcid.org/0000-0002-5166-9121) ] .text_100[José Ruiz-Tagle Maturana] .text_65[jose.ruiztagle@mail.udp.cl] [
](https://orcid.org/0000-0002-4866-5701) <br> <img src="data:image/png;base64,#./_style/cropped-logotipo_fsch.png" width="15%" /> ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ - Mi nombre es andrés gonzález. Soy asistente de investigación de un proyecto milenio de políticas sobre drogas y trabajo para Alvaro Castillo en el Centro de Investigación en Sociedad y Salud de la Universidad Mayor. También estudio un doctorado en Salud pública en la Universidad de Chile - Mi nombre es José Ruiz-Tagle, - Ustedes: Nombre, nivel de manejo en R, experiencias previas con este software , manejo informático, expectativas - Es de carácter introductorio a R y Rstudio - No es un curso de estadística ni de programación funcional - No soy un experto en informática ni en estadística - Es un curso enfocado a la aplicación de herramientas básicas de gestión de datos en R y Rstudio - Brinda herramientas, guía y orientación para profundizar de manera individual - PRESENTAR PROGRAMA Reglas de convivencia 1. Cámaras prendidas y micrófono muteado. 2. Atención, participación y compromiso con las sesiones. 3. El respeto por el otro (y por su trabajo) se demuestra de muchas formas. 4. La pregunta más “tonta” es la que no se hace. --- layout: true class: animated, fadeIn --- ## Resumen .pull_left[ .details-code[ ```r options( # whenever there is one account token found, use the cached token gargle_oauth_email = TRUE, # specify auth tokens should be stored in a hidden directory ".secrets" gargle_oauth_cache = "./_shiny/secrets" ) library(readr) encuesta_wide <- googlesheets4::read_sheet("1W7kO3UI3wKcfYodbrLKpP8sG1eVl9TFpUwU1BA5z40I") %>% #cuento cuantas veces aparece dplyr::group_by(question_id) %>% #genero una columna ID dplyr::mutate(ID=dplyr::row_number()) %>% #guardamos la base original por si necesitamos despues revisarla assign("encuesta",.,envir = .GlobalEnv) %>% #dejo los datos en un formato ancho, en que cada ingreso de formulario (ID) es una fila, y conservamos la fila de preguntas. tidyr::pivot_wider(id_cols=c(ID), names_from= question_id, values_from= response) %>% #en caso que alguien haya enviado más de una vez, me quedo con el último dplyr::ungroup() %>% dplyr::group_by(a) %>% dplyr::slice_tail() %>% dplyr::ungroup() #Etiquetas for (i in 1:length(unique(encuesta$PREGUNTAS))) { x<-i+1 attributes(encuesta_wide)$variable.labels[x]<- unique(encuesta$PREGUNTAS)[i] } encuesta_wide %>% dplyr::select(a) %>% dplyr::ungroup() %>% knitr::kable("markdown", caption="a.¿Cuál es su nombre completo?") ``` Table: a.¿Cuál es su nombre completo? |a | |:----------------------------------| |Felipe Andrés Sepúlveda Briones | |Javiera Pérez Veloso | |Joaquín Galdanes Hernández | |Karen Jara Araya | |María Francisca Soto | |Rodrigo Alejandro Meza Aliaga | |Tamara Aillali Reyes Ponce de León | |emilia cuadros | ] .details-code[ ```r encuesta_wide %>% ggplot(aes(x=as.numeric(b)))+ geom_histogram(bins=50)+ ggtitle("Distribución años de experiencia usando R")+ xlab("Años de experiencia en R")+ylab("Recuento")+ theme_light(base_size=15) ``` <img src="data:image/png;base64,#Clase1_files/figure-html/b-1.png" width="300px" style="display: block; margin: auto;" /> ] ] .pull_right[ .details-code[ ```r #[4] "d.¿Cuáles son sus expectativas del taller?" #[5] "e.¿Qué aspecto de los contenidos le interesó más?" if(!require(tidytext)){install.packages("tidytext")} if(!require(wordcloud)){install.packages("wordcloud")} #if(!require(sentiment.ai)){install.packages("sentiment.ai")} if(!require(SentimentAnalysis)){install.packages("SentimentAnalysis")} if(!require(sentimentr)){install.packages("sentimentr")} if(!require(tidytext)){install.packages("tidytext")} if(!require(tm)){install.packages("tm")} corpus <- Corpus(VectorSource(encuesta_wide$d)) # d <- tm_map(corpus, tolower) d <- tm_map(d, stripWhitespace) d <- tm_map(d, removePunctuation) d <- tm_map(d, removeNumbers) d <- tm_map(d, removeWords, stopwords("spanish")) d <- tm_map(d, removeWords, "menos") #d <- tm_map(d, removeWords, c("usted", "pues", "tal", "tan", "así", "dijo", "cómo", "sino", "entonces", "aunque", "don", "doña","hacia","mayor","algún","cada","tambien","ello","mostrara","sólo", "ser","tener","manera","actualmente","mejor","casos","trabajo","parte","contar","")) tdm <- TermDocumentMatrix(d) m <- as.matrix(tdm) #lo vuelve una matriz v <- sort(rowSums(m),decreasing=TRUE) #lo ordena y suma df <- data.frame(word = names(v),freq=v) # lo nombra y le da formato de data.frame #findFreqTerms(tdm) # #https://rpubs.com/brandonkopp/creating-word-clouds-in-r wordcloud::wordcloud(words = df$word, freq = df$freq, min.freq=1, max.words=200, random.order=FALSE, rot.per=0.35, colors=brewer.pal(8, "Greys")) ``` <img src="data:image/png;base64,#Clase1_files/figure-html/d-1.png" width="350px" style="display: block; margin: auto;" /> ] .details-code[ ```r if(!require(plotly)){install.packages("plotly")} data.frame(e=encuesta_wide$e) %>% dplyr::count(e) %>% dplyr::mutate(valid_percent=scales::percent(n/(sum(n)-sum(n[is.na(e)])),2), valid_percent=ifelse(is.na(n),NA,valid_percent), percent=scales::percent(n/(sum(n)),2))%>% dplyr::mutate(label=paste0(n,"<br>(",valid_percent,")")) %>% dplyr::ungroup()%>% dplyr::filter(!is.na(n)) %>% plot_ly( labels = ~e, values = ~n, type = 'pie',hole = 0.3, textposition = 'outside', textinfo = 'text', text = ~label, automargin = TRUE, sort = FALSE, direction = "clockwise", textfont = list(size = 15), marker = list(colors = c(gray.colors(length(unique(encuesta_wide$e))-1), "#FF5252")))%>% layout(yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = T)) %>% layout(showlegend = FALSE, width=350, height=350) %>% layout(showlegend = FALSE) ``` ] .details-code[ ```r token<-read.table("H:/Mi unidad/Curso_UDP/token2.txt", quote="\"", comment.char="") rcanvas::set_canvas_token(as.character(token)) rcanvas::set_canvas_domain("https://udp.instructure.com/") rcanvas::get_course_items(course_id = 19601, item = "users", include = "email") %>% #25422 dplyr::select(id, short_name, email) %>% dplyr::filter(short_name!="JOSÉ RUIZ-TAGLE",short_name!="ANDRES GONZALEZ") %>% #jrt knitr::kable("html") %>% kableExtra::kable_classic( )%>% kableExtra::scroll_box(width = "100%", height = "375px") %>% kableExtra::kable_styling(font_size = 10) %>% gsub("font-size: initial !important;", "font-size: 8pt !important;", .) ``` <div style="border: 1px solid #ddd; padding: 0px; overflow-y: scroll; height:375px; overflow-x: scroll; width:100%; font-size: 10px; margin-left: auto; margin-right: auto;" class="table"><table class=" lightable-classic" style='font-family: "Arial Narrow", "Source Sans Pro", sans-serif; margin-left: auto; margin-right: auto;'> <thead> <tr> <th style="text-align:right;position: sticky; top:0; background-color: #FFFFFF;"> id </th> <th style="text-align:left;position: sticky; top:0; background-color: #FFFFFF;"> short_name </th> <th style="text-align:left;position: sticky; top:0; background-color: #FFFFFF;"> email </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 56467 </td> <td style="text-align:left;"> DANIELA AGUIRRE </td> <td style="text-align:left;"> DANIELA.AGUIRRE3@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56468 </td> <td style="text-align:left;"> EMILIA CUADROS </td> <td style="text-align:left;"> EMILIA.CUADROS@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56874 </td> <td style="text-align:left;"> ANDRES D'ALENCON </td> <td style="text-align:left;"> ANDRES.DALENCON@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56469 </td> <td style="text-align:left;"> JOAQUÍN GALDAMES </td> <td style="text-align:left;"> JOAQUIN.GALDAMES@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56474 </td> <td style="text-align:left;"> MARTÍN GALFAN </td> <td style="text-align:left;"> MARTIN.GALFAN@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56470 </td> <td style="text-align:left;"> JUAN GONZÁLEZ </td> <td style="text-align:left;"> JUAN.GONZALEZ10@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56471 </td> <td style="text-align:left;"> Karen Jara Araya </td> <td style="text-align:left;"> KAREN.JARA1@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56466 </td> <td style="text-align:left;"> CRISTIAN JIMÉNEZ </td> <td style="text-align:left;"> CRISTIAN.JIMENEZT@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 57756 </td> <td style="text-align:left;"> JAVIER LEAL </td> <td style="text-align:left;"> JAVIER.LEAL@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 10717 </td> <td style="text-align:left;"> FELIPE LEAL </td> <td style="text-align:left;"> FELIPE.LEAL@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56091 </td> <td style="text-align:left;"> ELSA MARSANDE </td> <td style="text-align:left;"> ELSA.MARSANDE@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56476 </td> <td style="text-align:left;"> RODRIGO MEZA </td> <td style="text-align:left;"> RODRIGO.MEZA@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56883 </td> <td style="text-align:left;"> SEBASTIAN ORELLANA </td> <td style="text-align:left;"> SEBASTIAN.ORELLANA@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56879 </td> <td style="text-align:left;"> JAVIERA PÉREZ </td> <td style="text-align:left;"> JAVIERA.PEREZ4@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56478 </td> <td style="text-align:left;"> TAMARA REYES </td> <td style="text-align:left;"> TAMARA.REYES4@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 56465 </td> <td style="text-align:left;"> CATALINA ROA </td> <td style="text-align:left;"> CATALINA.ROA2@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 2078 </td> <td style="text-align:left;"> Luciano Sáez-Fuentealba </td> <td style="text-align:left;"> LUCIANO.SAEZ@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 8537 </td> <td style="text-align:left;"> FELIPE SEPÚLVEDA </td> <td style="text-align:left;"> FELIPE.SEPULVEDA1@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 11723 </td> <td style="text-align:left;"> MARÍA FRANCISCA </td> <td style="text-align:left;"> MARIA.SOTO3@MAIL.UDP.CL </td> </tr> <tr> <td style="text-align:right;"> 44512 </td> <td style="text-align:left;"> PILAR VEAS </td> <td style="text-align:left;"> PILAR.VEAS@MAIL.UDP.CL </td> </tr> </tbody> </table></div> ] ] --- ## Índice .text_80[ - **Introducción a R y la investigación reproducible:** - Software estadístico e investigación - Introducción a R y RStudio: interfaz para programar en R o entorno de desarrollo integrado IDE, ventajas/desventajas - Instalación - Proyectos en R, configurarlo, guardar conjuntos de datos, lógica de directorio (códigos, referencias, salidas de código, figuras), convenciones y buenas prácticas para guardar y abrir datos. - Recursos en línea - **Carga de datos** - Qué es una función y un paquete - Bases de datos (formatos, pro y contras), Estructura de datos (identificar, variables y niveles de medición, valores) - Funciones y usos básicos en R: operadores, objetos, funciones, vectores, data.frames, estructura de funciones y estructuras de control - **Tidyverse** - Ventajas y desventajas, gramática, operadores, aplicación - Manejo de datos: select, group_by, summarize, transmute, join - **Exploración de datos** - Medidas de tendencia central, dispersión, posición y forma - Tablas de resumen - Visualización básica de datos (ej., histogramas, diagramas de barras y de cajas) - **Visualización de datos con ggplot2** - Gramática y lógica de capas - Buenas prácticas - Ejemplos - **Introducción a RMarkdown y Quarto** - Reproducibilidad y aplicabilidad - Formatos - Estructura - Ventajas y desventajas de cada uno - *(Extra: De ser posible, Aplicación en modelos de regresión en R)* .center[ .black[ **Siempre y cuando sea posible** ] ] ] ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ VII. FORMAS DE EVALUACIÓN • Generar al menos 1 pregunta a través de CANVAS en formato Stackoverflow (10%) • Generar al menos 1 pregunta en ChatGPT relacionado al uso del software R (10%) • Dos talleres prácticos desarrollados en grupos de máximo dos o tres personas, dependiendo del tamaño del curso (70%). Taller 1: Manejo de datos (35%). Taller 2: Exploración de datos (35%). • Participación en Clase (10%). Entendida como 2 preguntas de alternativas al final de cada sesión (10 en total, 5%) y respuesta a una pregunta aleatoria emitida por los profesores a lo largo de la sesión (ausencia injustificada = nota 1.0) (5%) Todas las evaluaciones deberán ser sometidas en la fecha y hora indicada a través de la plataforma del curso. Considerando una escala de 1.0 a 7.0, la penalización por atraso no justificado es de 0.3 puntos por día sobre la nota obtenida, con un máximo de 10 días de retraso. Luego de los 10 días el/la estudiante será calificada/o con la nota mínima en dicha evaluación. - Dicho esto, vamos al grano --- class: partial-bg inverse center, middle background-image: linear-gradient(45deg, #ABB0BF, #555555) <!---#DD3333---> <!--- #https://github.com/AGSCL/Clases_DTSE1008/raw/main/data2.csv #https://github.com/AGSCL/Clases_DTSE1008/raw/main/barrial.csv #https://github.com/AGSCL/Clases_DTSE1008/raw/main/Drogas%20y%20jovenes_2007.sav #https://github.com/AGSCL/Clases_DTSE1008/raw/main/IPC.csv #https://github.com/AGSCL/Curso_R/tree/master/0c963a043f92e3c567b6afb48d406df5a2f38f5c #https://github.com/AGSCL/Curso_R/raw/master/0c963a043f92e3c567b6afb48d406df5a2f38f5c/ejercicio2.zip #MENTI PARA ENCUESTAS https://www.menti.com/alrq4rscmzbu https://github.com/AGSCL/Clases_DTSE1008 https://drive.google.com/drive/folders/10Hj3nPbT2SN5DntWV_5L1ahDLoO_M8j8 H:/Mi unidad/Curso_UDP/2023/anotaciones_clases_2022.R http://observatorio.ministeriodesarrollosocial.gob.cl/encuesta-social-covid19-cuarta-ronda ---> ## Partamos --- ## --- ## Software estadístico e Investigación - Los software estadísticos son **necesarios** para realizar investigación cuantitativa - Reducen considerablemente el **tiempo** que necesitamos para procesar, limpiar y analizar bases de datos - No todos los software estadísticos se utilizan para investigación (Ej: Excel, Python) - Generalmente se utiliza SPSS, STATA o R - Cada software tiene sus ventajas y desventajas dependiendo de la tarea que necesitemos realizar .center[ <img src="data:image/png;base64,#_figs/software_seen_by_others.png" width="450px" /> ] ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ - Lenguaje de programación desarrollado por estadísticos para estadísticos. - Python es de programación general, en contraste. - Gratis y de código abierto (vs. otros paquetes que hay que comprar módulos) --- ## R y RStudio .center[ .red[ **A la hora de elegir qué utilizará, debe considerar estos atributos** ] ] .pull_left[ - Flexible - Actualizaciones constantes - Fácil automatización e integración - Muchos recursos en-línea y comunidades - Útil para ser enseñado a estudiantes - Investigación Reproducible - **Gratis** - Fuente Abierta - Permite ver "tras bambalinas" <img src="data:image/png;base64,#./_figs/consola.png" width="450px" /> ] .pull_right[ - No tan intuitivo - No tan confiable - A ratos muy flexible - No cuenta con soporte oficial - Requiere tiempo <img src="data:image/png;base64,#https://github.com/AGSCL/Curso_R/raw/master/meme_sintaxis.jpg" width="200px" /> ] ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ - Flexibilidad (muchos diseños de datos y muchas funciones), Actualizaciones constantes (nuevos paquetes), de fácil automatización e integración con otras plataformas, software y lenguajes (Google, Excel, SQL, Stata, Python, etc.), muchos recursos en-línea (memes) y comunidades virtuales y presenciales (Rladies, useRchile, etc.), útil para ser enseñado a estudiantes y personas no tan familiarizadas con programación, **gratis**. - No tan intuitivo (Difícil aprender sintaxis de R, incorporar lenguaje y lógica detrás), No tan confiable (Paquetes Obsoletos, Erróneos, No Compatibles), a ratos muy flexible (requiere especificar muchos parámetros, argumentos, opciones, etc.), requiere tiempo. - Por ejemplo renv, o checkpoint o packrat, permiten tener un control total de los paquetes utilizados y su versión. - No te entrega las cajitas con las opciones prefijadas. Permite entender qué hay detrás --- ## Ventajas/Desventajas de RStudio .pull_left[ - **Entorno de Desarrollo Integrado para R** - Control de versiones - Paneles múltiples - Permite automatizar algunas funciones de R (Knitr) - Fácil Depurador (errores) - Eficienta Recursos Computacionales - Cuenta con soporte, versiones en servidor y grandes desarrolladores ] .pull_right[ - Algo inestable en determinadas tareas es (Ej. "*Figure margins too large*") - Tareas exigentes computacionalmente pueden ser más lentas ] ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ Por ejemplo, control de versones con github y svn. - Rstudio ventajas: Hay varios shortcuts de teclado, indicadores visuales para comandos, texto predictivo y auto-relleno de paréntesis, etc. --- ## Instalación - En la página pudieron ver cómo se instalaba R, **¿Alguna duda?** - Problemas frecuentes: - Microsoft R vs. R, Arquitectura SO (64bits vs. 32bits), - Conectar al servidor de repositorios (firewall, puertas de enlace bloqueadas, permisos de administrador, etc.), - **y un montón de cosas que se resuelven leyendo en internet.** - Ver el siguiente [ENLACE](proyecto.html) --- ## Entorno/Espacio de Trabajo - Oprima `Cntrl + Alt + Shift 0` <div class="yellow">- Editor de texto o códigos (ACTUALIZACION: Editor Visual Markdown)</div> <div class="green">- Lugar de trabajo (objetos creados, funciones, historial, control de versiones) (ACTUALIZACION: Se agregó Tutorial)</div> <div class="red">- Consola para desplegar los comandos y obtener resultados</div> <div class="blue">- Multitabla (gráficos, carpetas, paquetes, visor páginas web) (ACTUALIZACION: Se agregó "Presentation")</div> <img src="data:image/png;base64,#Clase1_files/figure-html/Fig-ent-1.gif" width="750px" style="display: block; margin: auto;" /> ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ Comentarios: - Cntrl+ Shift +H : Paara definir el entorno de trabajo.//Cmd + D: Para cambiar el entorno de trabajo - Editor de sintaxis: Formato block de notas, no ejecuta la sintaxis, comentarios se agregan anteponiendo el signo gato, puede predecir comandos, se ejecuta con cntrl+enterp "run" - Consola y visor resultados: Con un enter se ejcutarán, cambiarán de color una vez ejecutados, los errores arrojarán mensajes, ejecutar operaciones no es lo mismo que guardarlas, se ejecuta cuando hay un signo ">", no hay un mensaje de stop en la esquina superior derecha. - Entorno de trabajo: Memoria interna programa y uso de memoria RAM, entorno de trabajo temporal, objetos almacenados. - Visualizador: permite acceder a CRAN, manuales, etc. - Cuando R está listo para recibir comandos veremos que en la consola aparece el símbolo `>` (llamado _prompt_ en la consola). - Para que R ejecute un comando debemos escribirlo al lado derecho del _prompt_ y apretar la tecla "Enter". Si en lugar del _prompt_ vemos el símbolo `+` significa que el comando entregado no estaba completo. - Un comando puede estar incompleto por distintas razones, aunque en general se debe a que se nos ha olvidado cerrar algún paréntesis en el comando entregado. --- ## Entorno de Trabajo (2) - Rstudio permite crear un **Proyecto** (.Rproj), agrupa a todos los elementos. Puede gestionar los proyectos aquí: <img src="data:image/png;base64,#./_figs/rproj.png" width="250px" style="display: block; margin: auto;" /> - **Directorio:** Ubicación en la que alojaré archivos que formarán parte del entorno de trabajo. Se obtiene mediante `getwd()`. **Configurarlo es muy importante (`setwd([RUTA])`).** - **.rds:** Permite guardar bases de datos de manera individual (muy similar a una hoja excel, un archivo .csv, etc.) - **.Rdata:** Permite guardar múltiples datos, objetos, funciones, etc., lo que equivale a decir que permite guardar el espacio de trabajo en general (`save.image(file =[RUTA])` para guardar todo, `save` para guardar sólo ciertos objetos en un .Rdata, `load([RUTA])` para restaurar). De igual forma, puede hacerlo desde aquí: <img src="data:image/png;base64,#./_figs/guardar_load_rdata.png" width="250px" style="display: block; margin: auto;" /> - **.R:** Una especie de archivos de texto en el que se pueden guardar comandos, anotaciones, etc. Similar a un archivo `.do` o sintaxis. Se recomienda que antes de cerrar una sesión, uno pueda guardar los scripts. **.Rdata no es lo mismo que .R, RECUÉRDELO**. ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ PROYECTOS: que agrupa/incorpora los distintos elementos de más abajo. Se recomienda crear uno siempre que se trabaje en un proyecto de investigación nuevo. Además, se recomienda asignarle una carpeta de trabajo individual, que pueda estar respaldada constantemente (ojo: cuidado con Google Drive). - Igual uno puede guardar un solo archivo con `save(data_cons, file = "OUT/data3.RData")` --- ## Tips/Recomendaciones - `here::here()` permite saber cuál es la ubicación del directorio en vez de utilizar un directorio fijo. - `rm(list = ls())` si bien puede ser útil, no empieza un proceso de R totalmente limpio, sino que elimina objetos creados en el espacio de trabajo. **TOTALMENTE RECOMENDADO** - `renv()`, en un proyecto permite tener los paquetes de R actualizados hasta cierta fecha, junto con sus dependencias (snapshot) - `dateback()` para instalar paquetes de acuerdo a su publicación en CRAN en una fecha - `rstudioapi::getSourceEditorContext()$path`, permite también tener una ubicación relativa de su proyecto. - `GitHub`, control de versiones, colaboración, etc. <img src="data:image/png;base64,#./_figs/DQugFIWUEAErq0D.jpg" width="350px" style="display: block; margin: auto;" /> - Vea las opciones de su proyecto <img src="data:image/png;base64,#./_figs/DQugFIWUEAErq0D.jpg" width="350px" style="display: block; margin: auto;" /> ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ PROYECTOS: - Uno ve cuándo actualiza RENV (sus paquetes etc). Aunque es medio inestable, creo que es una gran opción. - --- ## Tips/Recomendaciones (2) **¿Cómo preguntar algo en R?** .pull_c[ - Stackoverflow, twitter, grupos en R - `dput()` base de datos hipotética o real* - Markdown - Precisión - Chat GPT Prompts ] <img src="data:image/png;base64,#./_figs/meme_r_exp.jpeg" width="250px" style="display: block; margin: auto;" /> ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ - Siempre antes busque en español e inglés si su pregunta fue planteada anteriormente (para que no la marquen como duplicada y reciba una mala calificación por flojo) - Real siempre y cuando la desanonimice (`anonymizer`) o no sea la base de datos completa (filtre) - `dput(mtcars)`: permite exportar la estructura de la base de datos para quien le ayude sepa cómo se ordenan sus datos y eventuales dependencias o clases de valores. Si bien puede apoyarse con una imagen de sus datos, es recomendable que use dput() - Maneje algo de lenguaje markdown para hacer más entendible su pregunta - No aburra, sea preciso. - Les dejo un ejemplo mío: https://stackoverflow.com/questions/63290366/mutate-across-multiple-variables-using-a-list-of-third-variables-in-r - Otro en español: https://es.stackoverflow.com/questions/566778/loop-sobre-varios-objetos-con-nombres-parcialmente-com%c3%ban - StackOverflow (https://es.stackoverflow.com/). Por ejemplo, Testeo de modelo lineal en R (https://es.stackoverflow.com/questions/331075/testeo-de-modelo-lineal-en-r) - **Otros tips**: Incluya tags o palabres clave; revise con un compañere antes de publicar, responda adecuadamente al recibir retroalimentación, revise redacción, aunque en el título sea pragmático. Sea agradecido (upvote) --- ## Tips/Recomendaciones (3) **Cursos** - DataCamp. Por ejemplo, Introduction to R (https://www.datacamp.com/courses/free-introduction-to-r) - Si usted quiere tener una prueba gratis de DataCamp, más allá de completar el primer capítulo de un curso (https://www.datacamp.com/blog/how-to-get-10-years-of-free-datacamp-if-youre-a-teacher-or-student) - Statistics With Interactive R Learning(SWIRL): The easiest and the most interactive way to start learning R (https://swirlstats.com/students.html) [Youtube](https://youtu.be/w6L7Ye18yPE). - edX. Por ejemplo, Dat Science: R Basics (https://www.edx.org/es/course/data-science-r-basics), o Introduction to R for Data Science (https://www.edx.org/es/course/introduction-to-r-for-data-science-2). - YouTube. - Estación Lastarria (https://www.estacionlastarria.cl/actividades/rstudio/rstudio-ciencias-sociales.html) - Centro de Microdatos UChile (https://www.microdatos.cl/analisis-datos-r) - Introduction to R (https://www.quantargo.com/courses/course-r-introduction/) **Comunidades** - R-Ladies (https://twitter.com/rladiessantiago) - UseRChile Usuarios de R en Chile (https://userchile.cl/) --- ## Tips/Recomendaciones (4) **Otros** - learnr (Etiqueta “Tutorial”) - CheatSheets. https://rstudio.com/resources/cheatsheets/ - Memes - Twitter, Pachá (@pachamaltese) y Hadley Wickham (@hadleywickham) - Rpubs. Páginas alojadas que permiten ver cómo cada persona obtuvo un determinado producto a partir de un código **IA** - BARD (https://bard.google.com/?hl=es) - AutoRegex (https://www.autoregex.xyz/) - Rtutor (http://rtutor.ai/) - ChatGPT (https://chat.openai.com/) ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ - Por ejemplo, Estadística Útil (https://www.youtube.com/watch?v=rzw1E6HxBFY&list=PLfX5C7cc6LRJ7V6WNgatRQJ6PNMrb4zfM) Riffomonas Project (https://www.youtube.com/c/RiffomonasProject), Population Data BC (https://www.youtube.com/channel/UCavuC5RfLRUv_8XZxYDR0FA), Econometrics, Causality, and Coding with Dr. HK (https://www.youtube.com/c/NickHuntingtonKlein), Sacha Epskamp (https://www.youtube.com/c/SachaEpskamp1), Paul Dickman (https://www.youtube.com/channel/UC0IZswgRCFX3FYagJ_-ODTg), NHSR Community (https://www.youtube.com/c/NHSRCommunity) Online Causal Inference Seminar (https://www.youtube.com/channel/UCiiOj5GSES6uw21kfXnxj3A) **PEDIRLES QUE BAJEN DE GITHUB EL REPOSITORIO DE LAS CLASES** --- ## Ejemplo directorio trabajo de un proyecto .text_80[ .details-code[ ```r path<- list.files("./", full.names = TRUE, recursive = TRUE) library(data.tree) library(plyr) a <- lapply(strsplit(path, "/"), function(z) as.data.frame(t(z))) a <- rbind.fill(a) mytree <- data.tree::as.Node(data.frame(pathString = path)) mytree ``` ``` ## levelName ## 1 . ## 2 ¦--_bib ## 3 ¦ °--_clases_umayor.rar ## 4 ¦--_data ## 5 ¦ ¦--1a.R ## 6 ¦ ¦--1b.R ## 7 ¦ ¦--bbdd_prueba1.csv ## 8 ¦ ¦--bbdd_prueba1.dta ## 9 ¦ ¦--bbdd_prueba1.sav ## 10 ¦ ¦--bo-012021.xlsx ## 11 ¦ ¦--casen_red.sav ## 12 ¦ ¦--coronavirus.xlsx ## 13 ¦ ¦--Drogas y jovenes_2007.sav ## 14 ¦ ¦--ejecucion-presupuestaria_nivel-nacional_a-junio-2023.csv ## 15 ¦ ¦--ejercicio2.zip ## 16 ¦ ¦--Encuesta_Social_COVID-19_IV.zip ## 17 ¦ ¦--HISTORIAL_20DE_20PROCESOS_20DE_20SELECCION_202013_2020.xlsx ## 18 ¦ ¦--pccochamo2016.csv ## 19 ¦ ¦--personal_curso.xlsx ## 20 ¦ ¦--StreamingHistory0.json ## 21 ¦ °--StreamingHistory1.json ## 22 ¦--_figs ## 23 ¦ ¦--_coronavirus.PNG ## 24 ¦ ¦--_pipe_meme.PNG ## 25 ¦ ¦--1.PNG ## 26 ¦ ¦--10.PNG ## 27 ¦ ¦--11.PNG ## 28 ¦ ¦--12.PNG ## 29 ¦ ¦--13.PNG ## 30 ¦ ¦--14a.PNG ## 31 ¦ ¦--14b.PNG ## 32 ¦ ¦--15.PNG ## 33 ¦ ¦--16.PNG ## 34 ¦ ¦--17.PNG ## 35 ¦ ¦--1b.png ## 36 ¦ ¦--2.PNG ## 37 ¦ ¦--2b.png ## 38 ¦ ¦--3.PNG ## 39 ¦ ¦--3b.png ## 40 ¦ ¦--4.PNG ## 41 ¦ ¦--4b.png ## 42 ¦ ¦--5.PNG ## 43 ¦ ¦--5b.png ## 44 ¦ ¦--6.PNG ## 45 ¦ ¦--6b.png ## 46 ¦ ¦--7.PNG ## 47 ¦ ¦--71746538_1513071482177691_7543072537354174464_n.jpg ## 48 ¦ ¦--8.PNG ## 49 ¦ ¦--9.PNG ## 50 ¦ ¦--asimetria_dists.PNG ## 51 ¦ ¦--asimetria_dists2.PNG ## 52 ¦ ¦--casen.jpg ## 53 ¦ ¦--consola.png ## 54 ¦ ¦--descarga.png ## 55 ¦ ¦--dir_Travolta.gif ## 56 ¦ ¦--DQugFIWUEAErq0D.jpg ## 57 ¦ ¦--ejemplo_latex.png ## 58 ¦ ¦--Ejercicio20.png ## 59 ¦ ¦--entorno_de_trabajo.PNG ## 60 ¦ ¦--gastos_casa_csv_foto.PNG ## 61 ¦ ¦--guardar_load_rdata.PNG ## 62 ¦ ¦--guardar_scripts.PNG ## 63 ¦ ¦--Import_dataset.PNG ## 64 ¦ ¦--Importar_xlsx.PNG ## 65 ¦ ¦--Instalacion R- MAC (0).PNG ## 66 ¦ ¦--Instalacion R- Win (0).PNG ## 67 ¦ ¦--Instalacion R- Win (1).PNG ## 68 ¦ ¦--Instalacion R- Win (2).PNG ## 69 ¦ ¦--Instalacion R- Win (3).PNG ## 70 ¦ ¦--Instalacion R- Win (4).PNG ## 71 ¦ ¦--Instalacion R- Win (5).PNG ## 72 ¦ ¦--Instalacion R- Win (6).PNG ## 73 ¦ ¦--Instalacion R- Win (7).PNG ## 74 ¦ ¦--Instalacion R- Win (8).PNG ## 75 ¦ ¦--Instalacion R- Win (9).PNG ## 76 ¦ ¦--Instalacion Rstudio- Win (1).PNG ## 77 ¦ ¦--Instalacion Rstudio- Win (2).PNG ## 78 ¦ ¦--Instalacion Rstudio- Win (3).PNG ## 79 ¦ ¦--Instalacion Rstudio- Win (4).PNG ## 80 ¦ ¦--Instalacion_final.PNG ## 81 ¦ ¦--instalacion_Rstudio1.gif ## 82 ¦ ¦--instalacion_Rstudio1.mov ## 83 ¦ ¦--instalacion_Rstudio2.gif ## 84 ¦ ¦--instalacion_Rstudio2.mov ## 85 ¦ ¦--instalacion_Rstudio3.gif ## 86 ¦ ¦--instalacion_Rstudio3.mov ## 87 ¦ ¦--install_package.png ## 88 ¦ ¦--maduro.jpg ## 89 ¦ ¦--md.png ## 90 ¦ ¦--meme_r_exp.jpeg ## 91 ¦ ¦--native_pipe.PNG ## 92 ¦ ¦--pandoc.png ## 93 ¦ ¦--pipe_vs_rest.png ## 94 ¦ ¦--Repositorios.png ## 95 ¦ ¦--rmarkdown.PNG ## 96 ¦ ¦--rproj.PNG ## 97 ¦ ¦--rstudioconf_ohi_hex.jpg ## 98 ¦ ¦--software_seen_by_others.png ## 99 ¦ °--var_ritchey.png ## 100 °--... 80 nodes w/ 476 sub ``` ] ] ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ PROYECTOS: - Este es un proyecto que tiene una serie de carpetas, que se conecta a Github (control de versiones), etc. - Esta es la estructura de datos que hay en su interior - Veamos qué contiene: hay un "american-medical-association-10th-edition.csl", para insertar un formato de referencias - Hay múltiples css para dar el estilo y diseño a la presentación y páginas en su interior - Estan los .RMDs y los .HTMLs - Carpetas: data, figs, output, style (ahí deberían ir los .css y todo lo que tiene relación con los temas, pero también van las fuentes de letra, etc.) - Tips: cuidado con dejar las carpetas en una subcarpeta OneDrive o coordinada con la nube porque eso podría generar problemas de sincronización --- ## Ejercicio - Parta un proyecto nuevo (con las consideraciones dichas) - Tome las siguiente base de datos (copie y pegue en la consola): .details[ .details-code[ ```r data <- data.frame( Folio = c(1297, 986, 971, 949, 940, 1740, 1875, 1567, 699, 887, 1641, 964, 1635, 2084, 2047, 1310, 803, 1977, 1685, 1776, 1129, 1697, 1682, 1228), Curso = factor(c('5A', '5B', '5C', '5A', '5A', '5A', '5A', '5B', '5B', '5B', '5A', '5B', '5A', '5B', '5C', '5C', '5A', '5A', '5A', '5A', '5A', '5B', '5A', '5A')), Sexo = factor(c('F', 'F', 'F', 'F', 'F', 'F', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'F', 'F', 'F', 'F', 'F', 'M', 'F', 'F', 'F', 'M', 'F')), Peso = c(67.9, 43.9, 33.6, 33.2, 32.9, 26.2, 34.4, 36.6, 32.0, 52.2, 23.8, 40.6, 59.1, 33.4, 38.7, 41.8, 32.0, 35.8, 54.7, 67.3, 23.7, 44.2, 58.2, 43.7), Talla = c(158.0, 143.0, 147.0, 136.5, 138.0, 132.5, 141.0, 137.0, 136.5, 142.0, 132.5, 139.0, 141.0, 140.5, 141.5, 143.5, 140.0, 144.5, 153.0, 154.0, 133.0, 137.5, 143.0, 149.5), IMC = c(27.2, 21.5, 15.5, 17.8, 17.3, 14.9, 17.3, 19.5, 17.2, 25.9, 13.6, 21.0, 29.7, 16.9, 19.3, 20.3, 16.3, 17.1, 23.4, 28.4, 13.4, 23.4, 28.5, 19.6), zimc = c(2.146, 1.286, -0.756, 0.318, 0.110, -1.109, 0.221, 0.909, 0.228, 2.066, -2.101, 1.348, 2.396, 0.109, 0.767, 1.151, -0.373, -0.006, 1.791, 2.241, -2.176, 1.646, 2.318, 0.943), estado_zimc = c(3, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2, 3, 0, 0, 2, 0, 0, 3, 3, 1, 3, 3, 0), Clasifnut = factor(c('Obeso', 'Sobrepeso', 'Normal', 'Normal', 'Normal', 'Normal', 'Normal', 'Normal', 'Normal', 'Obeso', 'Bajo peso', 'Sobrepeso', 'Obeso', 'Normal', 'Normal', 'Sobrepeso', 'Normal', 'Normal', 'Obeso', 'Obeso', 'Bajo peso', 'Obeso', 'Obeso', 'Normal')) ) dput(data) ``` ``` ## structure(list(Folio = c(1297, 986, 971, 949, 940, 1740, 1875, ## 1567, 699, 887, 1641, 964, 1635, 2084, 2047, 1310, 803, 1977, ## 1685, 1776, 1129, 1697, 1682, 1228), Curso = structure(c(1L, ## 2L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 3L, 3L, 1L, ## 1L, 1L, 1L, 1L, 2L, 1L, 1L), .Label = c("5A", "5B", "5C"), class = "factor"), ## Sexo = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, ## 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L), .Label = c("F", ## "M"), class = "factor"), Peso = c(67.9, 43.9, 33.6, 33.2, ## 32.9, 26.2, 34.4, 36.6, 32, 52.2, 23.8, 40.6, 59.1, 33.4, ## 38.7, 41.8, 32, 35.8, 54.7, 67.3, 23.7, 44.2, 58.2, 43.7), ## Talla = c(158, 143, 147, 136.5, 138, 132.5, 141, 137, 136.5, ## 142, 132.5, 139, 141, 140.5, 141.5, 143.5, 140, 144.5, 153, ## 154, 133, 137.5, 143, 149.5), IMC = c(27.2, 21.5, 15.5, 17.8, ## 17.3, 14.9, 17.3, 19.5, 17.2, 25.9, 13.6, 21, 29.7, 16.9, ## 19.3, 20.3, 16.3, 17.1, 23.4, 28.4, 13.4, 23.4, 28.5, 19.6 ## ), zimc = c(2.146, 1.286, -0.756, 0.318, 0.11, -1.109, 0.221, ## 0.909, 0.228, 2.066, -2.101, 1.348, 2.396, 0.109, 0.767, ## 1.151, -0.373, -0.006, 1.791, 2.241, -2.176, 1.646, 2.318, ## 0.943), estado_zimc = c(3, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, ## 2, 3, 0, 0, 2, 0, 0, 3, 3, 1, 3, 3, 0), Clasifnut = structure(c(3L, ## 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 1L, 4L, 3L, 2L, 2L, 4L, ## 2L, 2L, 3L, 3L, 1L, 3L, 3L, 2L), .Label = c("Bajo peso", ## "Normal", "Obeso", "Sobrepeso"), class = "factor")), class = "data.frame", row.names = c(NA, ## -24L)) ``` ] ] - Obtenga la media del `Peso` - Guarde los pasos seguidos para utilizar la base de datos y el cálculo de la media (sintaxis) - Guarde los resultados en un archivo - Cerciórese de que se mantengan en la misma carpeta - Cierre y reinicie su computador ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ - Dos "comandos elementales" en R son las expresiones y las asignaciones. Las **expresiones** son comandos que R evalúa y cuyos resultados son impresos en la consola sin ser almacenados. Por ejemplo, el siguiente comando es una expresión porque solicita evaluar una suma cuyo resultado es arrojado a la consola: --- ## Ejercicio: Hágalo usted - Su jefe le pide que vea los datos guardados en el proyecto de R adjunto en el enlace. - Abra el siguiente [enlace](https://github.com/AGSCL/Taller-UDP-2022/raw/main/_data/ejercicio2.zip) y ubique el entorno de trabajo en una carpeta manipulable. - Abra el **proyecto**, los datos, pero no el *script* - Vea las primeras 6 filas del objeto `base_datos` - OPC. Vea las primeras 3 filas - ¿A qué llegó? --- ## Ejercicio: Hágalo usted (2) - Cree un nuevo proyecto en R - Genere la siguiente base de datos recurriendo a este código: `set.seed(6789); df2<- data.frame(numeros=round(rnorm(1:300)*100,0))` - Utilizando `tail(df2)` obtenga las últimas 6 observaciones - Súmelas - ¿Llegó al siguiente número: 12? - OPC1 = obtenga la media de todos los números (use recursos en línea) - OPC2 (+ avanzada)= obtenga el resultado usando comas como separador de decimales ("outdec" en internet) - OPC3 = Obtenga la desviación estándar, separando los decimales con comas - Guarde los datos y el proyecto - Reinicie el computador. Vuelva a abrirlos ??? *#_#_#_#_#_#_#_#_#_#_ **NOTA** *#_#_#_#_#_#_#_#_#_#_ **Ejercicio: Hágalo con su compañere** - En la carpeta `_data`, encontrará 2 ejercicios con nombre: **1a** y **1b**. - Ejecute el .RMD, genere con él un proyecto y - Guarde la .Rdata con nombre 1a o 1b según corresponda (**NADA MÁS**) - Compártalo con un compañere - En aquel proyecto que le compartieron, sólo abra el .RData, despliegue el - resultado alojado en el objeto **"plot"** --- class: center, middle # Gracias! <br> <div class="centered"> Contacto: CANVAS </div> <br> <br> <br> <img src="data:image/png;base64,#./_style/cropped-logotipo_fsch.png" width="300" style="display: block; margin: auto;" /> <br> --- ## Fuentes - Boccardo, Giorgio & Ruiz, Felipe. (2018). Uso de RStudio para Estadística Univariada en Ciencias Sociales. Manual de apoyo docente para la asignatura Estadística Descriptiva (1a. Edición). 10.13140/RG.2.2.32783.48803. https://github.com/feliperuizbruzzone/Uso-de-R-para-Estadistica-Social/blob/master/Boccardo%20%26%20Ruiz%20(2018).%20Uso%20de%20RStudio%20para%20Estad%C3%ADstica%20Univariada%20en%20Ciencias%20Sociales%20%5B19%20%20julio%5D.pdf - Cano, E. & Moguerza, J. (2015). “R desde el principio. Curso ceRo de R”. Ediciones del Orto, Madrid. ISBN 84-7923-526-8. http://emilio.lcano.com/pub/cero/R-desde-el-principio-curso-cero-V1.02.pdf - Ozgur, C., Kleckner, M., & Li, Y. (2015). Selection of Statistical Software for Solving Big Data Problems. SAGE Open, 5(2), 215824401558437. doi:10.1177/2158244015584379 - Leiden University (2023, April 12). “Goodbye SPSS, hallo R: ‘Now we can help students who like statistics to excel’”. Disponible en: https://www.universiteitleiden.nl/en/news/2023/04/goodbye-spss-hallo-r-now-we-can-help-students-who-like-statistics-to-excel - Elosua, P. (2009). ¿Existe vida más allá del SPSS? Descubre R. Psicothema, 21(4),652-655. ISSN: 0214-9915. Disponible en: http://www.psicothema.com/pdf/3686.pdf - R Development Core Team (2000). Introducción a R. Notas sobre R: Un entorno de programación para Análisis de Datos y Gráficos. Versión 1.0.1 https://cran.r-project.org/doc/contrib/R-intro-1.1.0-espanol.1.pdf - Bryan, J. (2017, Diciembre 12). Project-oriented workflow. https://www.tidyverse.org/blog/2017/12/workflow-vs-script/ - RStudio Support (2022, Octubre 16). Using RStudio Projects. https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects - Stackoverflow. How do I ask a good question?. https://stackoverflow.com/help/how-to-ask